বিল্ডার (Builder) হলো একটি শক্তিশালী প্যাটার্ন যা একটি জটিল অবজেক্ট তৈরি করার জন্য ব্যবহৃত হয়, যেখানে একাধিক ইনস্ট্যান্স পরিবর্তনশীলভাবে সাজানো বা কনফিগার করা হয়। Groovy তে বিল্ডার ব্যবহার করে আপনি খুবই সহজভাবে XML, HTML, JSON, অথবা অন্যান্য কাস্টম ডেটা স্ট্রাকচার তৈরি করতে পারেন। Groovy তে বিল্ডার প্যাটার্নের সুবিধা হল, এটি খুবই পরিষ্কার এবং কোড কম্পোজিশন সহজ করে দেয়।
Groovy তে বিল্ডার বিভিন্ন ধরনের কনটেইনারের জন্য সহজেই ব্যবহার করা যেতে পারে, যেমন XML বিল্ডার, HTML বিল্ডার, এবং আরও অনেক কাস্টম বিল্ডার।
Groovy তে বিল্ডার প্যাটার্ন খুবই শক্তিশালী, এবং এটি Groovy's Builder API এর মাধ্যমে উপলব্ধ। এই API ব্যবহার করে আপনি DSL (Domain-Specific Language) তৈরি করতে পারেন যা অবজেক্ট তৈরি এবং কনফিগার করার জন্য বিশেষভাবে উপযোগী।
Groovy তে একটি বিল্ডার তৈরি করার জন্য সাধারণভাবে কনস্ট্রাক্টর মেথড এবং ক্লোজার ব্যবহার করা হয়। বিল্ডার সাধারণত একটি কোড ব্লক (DSL) তৈরি করে যা ব্যবহারকারীকে সিস্টেমের জন্য কোড লেখার সুবিধা দেয়।
class PersonBuilder {
String name
int age
Person build() {
return new Person(name: name, age: age)
}
}
class Person {
String name
int age
}
def builder = new PersonBuilder()
def person = builder.with {
name = "John"
age = 30
}.build()
println person.name // Output: John
println person.age // Output: 30
এখানে, PersonBuilder
ক্লাসটি একটি বিল্ডার হিসেবে কাজ করছে যা Person
অবজেক্ট তৈরি করে এবং তার প্রপার্টি কনফিগার করে।
Groovy তে XML Builder ব্যবহার করে আপনি XML ডেটা তৈরি করতে পারেন। এটি Groovy এর বিল্ট-ইন XmlBuilder ক্লাস ব্যবহার করে করা যায়।
def builder = new groovy.xml.MarkupBuilder()
def xml = builder.books {
book {
title 'Groovy in Action'
author 'Dierk Koenig'
price 40
}
book {
title 'Learning Groovy'
author 'Adam L. Davis'
price 35
}
}
println xml
এখানে, MarkupBuilder
ব্যবহার করে books
নামক একটি XML এলিমেন্ট তৈরি করা হয়েছে এবং এর মধ্যে দুইটি book
এলিমেন্ট যুক্ত করা হয়েছে।
<books>
<book>
<title>Groovy in Action</title>
<author>Dierk Koenig</author>
<price>40</price>
</book>
<book>
<title>Learning Groovy</title>
<author>Adam L. Davis</author>
<price>35</price>
</book>
</books>
এখানে, MarkupBuilder
অটোমেটিকভাবে XML স্ট্রাকচার তৈরি করেছে।
Groovy তে HTML Builder ব্যবহার করে HTML ডকুমেন্ট তৈরি করা যায়। এটি MarkupBuilder এর মতো কাজ করে, তবে এখানে HTML ট্যাগ তৈরি করা হয়।
def builder = new groovy.xml.MarkupBuilder()
def html = builder.html {
head {
title 'Groovy HTML Example'
}
body {
h1 'Welcome to Groovy!'
p 'This is an HTML page generated using Groovy MarkupBuilder.'
}
}
println html
এখানে, MarkupBuilder
ব্যবহার করে HTML ট্যাগগুলি তৈরি করা হয়েছে।
<html>
<head>
<title>Groovy HTML Example</title>
</head>
<body>
<h1>Welcome to Groovy!</h1>
<p>This is an HTML page generated using Groovy MarkupBuilder.</p>
</body>
</html>
এখানে, MarkupBuilder
HTML ট্যাগ গুলি সঠিকভাবে তৈরি করেছে।
Groovy তে JSON ডেটা তৈরি করতে JsonBuilder ব্যবহার করা হয়, যা JSON ডেটা স্ট্রাকচার গঠন করার জন্য একটি পরিষ্কার এবং সহজ পদ্ধতি প্রদান করে।
def builder = new groovy.json.JsonBuilder()
def json = builder.people {
person {
name 'John'
age 30
city 'New York'
}
person {
name 'Alice'
age 25
city 'Los Angeles'
}
}
println json.toString()
এখানে, JsonBuilder
ব্যবহার করে people
নামক JSON অবজেক্ট তৈরি করা হয়েছে এবং এর মধ্যে দুটি person
অবজেক্ট যুক্ত করা হয়েছে।
{
"people": [
{
"name": "John",
"age": 30,
"city": "New York"
},
{
"name": "Alice",
"age": 25,
"city": "Los Angeles"
}
]
}
এখানে, JsonBuilder
JSON ডেটা তৈরি করেছে যা পরে স্ট্রিং হিসেবে প্রিন্ট করা হয়েছে।
Groovy তে আপনি কমপ্লেক্স বিল্ডার তৈরি করতে পারেন যা আপনার কাস্টম ডেটা স্ট্রাকচার তৈরি করতে সহায়তা করে। আপনি সহজেই কাস্টম অবজেক্ট তৈরি করার জন্য বিল্ডার প্যাটার্ন ব্যবহার করতে পারেন।
class Car {
String make
String model
int year
}
def carBuilder = new groovy.util.BuilderSupport()
def car = carBuilder.car {
make 'Toyota'
model 'Corolla'
year 2020
}
println car.make // Output: Toyota
println car.model // Output: Corolla
println car.year // Output: 2020
এখানে, BuilderSupport
ক্লাস ব্যবহার করে একটি Car
অবজেক্ট তৈরি করা হয়েছে এবং সেটির প্রপার্টি কনফিগার করা হয়েছে।
Groovy তে বিল্ডার একটি শক্তিশালী এবং নমনীয় টুল যা আপনাকে সহজে এবং পরিষ্কারভাবে ডেটা স্ট্রাকচার তৈরি করতে সহায়তা করে। Groovy এর বিল্ডার প্যাটার্ন আপনাকে XML, HTML, JSON, এবং কাস্টম অবজেক্ট তৈরি করতে সহায়তা করে, এবং এটি কোড লেখার প্রক্রিয়াকে আরও সহজ এবং কার্যকরী করে তোলে। MarkupBuilder এবং JsonBuilder এর মতো বিল্ডারগুলি Groovy তে ডেটা তৈরির কাজকে আরও দ্রুত এবং দক্ষ করে তোলে।
Groovy Builders হলো Groovy তে একটি শক্তিশালী বৈশিষ্ট্য যা XML, JSON, HTML এবং অন্যান্য ডেটা স্ট্রাকচার তৈরি এবং ম্যানিপুলেট করার জন্য ব্যবহার করা হয়। Builders এর মাধ্যমে জটিল ডেটা স্ট্রাকচার সহজ এবং সংক্ষিপ্তভাবে তৈরি করা সম্ভব হয়। Groovy তে বিল্ট-ইন কিছু Builders রয়েছে, যেমন - MarkupBuilder
, JsonBuilder
, এবং NodeBuilder
।
MarkupBuilder
হলো XML বা HTML ডকুমেন্ট তৈরি করার জন্য একটি Groovy Builder। এটি HTML বা XML স্ট্রাকচার তৈরি করতে খুবই সুবিধাজনক এবং কোড পাঠযোগ্য রাখে।
import groovy.xml.MarkupBuilder
def writer = new StringWriter()
def xml = new MarkupBuilder(writer)
xml.person {
name "Alice"
age 30
address {
city "New York"
zip "10001"
}
}
println writer.toString()
আউটপুট:
<person>
<name>Alice</name>
<age>30</age>
<address>
<city>New York</city>
<zip>10001</zip>
</address>
</person>
JsonBuilder
ব্যবহার করে JSON ডেটা স্ট্রাকচার তৈরি করা যায়। এটি JSON ডকুমেন্ট তৈরি এবং ম্যানিপুলেট করার জন্য উপযোগী।
import groovy.json.JsonBuilder
def json = new JsonBuilder()
json.person {
name "Bob"
age 25
skills ["Groovy", "Java", "Python"]
}
println json.toPrettyString()
আউটপুট:
{
"person": {
"name": "Bob",
"age": 25,
"skills": ["Groovy", "Java", "Python"]
}
}
NodeBuilder
ব্যবহার করে XML বা হায়ারার্কিকাল ডেটা স্ট্রাকচার তৈরি করা যায়। এটি ডেটা স্ট্রাকচার তৈরি করতে Node
অবজেক্ট ব্যবহার করে।
import groovy.util.NodeBuilder
def builder = new NodeBuilder()
def person = builder.person(name: "Charlie", age: 35) {
address(city: "Los Angeles", zip: "90001")
}
println groovy.xml.XmlUtil.serialize(person)
আউটপুট:
<person name='Charlie' age='35'>
<address city='Los Angeles' zip='90001'/>
</person>
SwingBuilder
ব্যবহার করে সহজে GUI (Graphical User Interface) তৈরি করা যায়। এটি Java Swing উপাদানের সাহায্যে GUI তৈরি করতে ব্যবহৃত হয়।
import groovy.swing.SwingBuilder
import javax.swing.JFrame
def swing = new SwingBuilder()
swing.frame(title: 'Groovy Swing', size: [300, 200], defaultCloseOperation: JFrame.EXIT_ON_CLOSE) {
label(text: 'Hello, Groovy Swing!')
}.show()
এই উদাহরণে একটি JFrame তৈরি করা হয়েছে, যেখানে "Hello, Groovy Swing!" টেক্সট সহ একটি লেবেল আছে।
MarkupBuilder
এবং NodeBuilder
ব্যবহার করে XML এবং HTML ডকুমেন্ট সহজে তৈরি করা যায়।JsonBuilder
ব্যবহার করে REST API অথবা ডেটা ট্রান্সফার ফরম্যাটের জন্য JSON তৈরি করা যায়।SwingBuilder
ব্যবহার করে ডেস্কটপ GUI তৈরি করা যায়।Groovy Builders, XML, JSON, HTML, এবং GUI তৈরি করার কাজকে সহজ এবং সংক্ষিপ্ত করে তোলে। Builders এর মাধ্যমে জটিল ডেটা স্ট্রাকচার সহজেই তৈরি করা যায়, এবং এর ডায়নামিক সিনট্যাক্স কোডকে আরও সহজে পড়ার যোগ্য করে। MarkupBuilder
, JsonBuilder
, NodeBuilder
, এবং SwingBuilder
হলো Groovy এর প্রধান Builders, যা বিভিন্ন কাজের জন্য বিশেষভাবে ব্যবহার করা হয়।
Groovy তে Builders এর সাহায্যে XML, HTML, JSON ইত্যাদি ডকুমেন্ট তৈরি করা যায়। Groovy Builder একটি সহজ এবং শক্তিশালী উপায় যা প্রোগ্রামারদের XML, HTML, বা অন্যান্য মার্কআপ ডকুমেন্ট তৈরি করতে সাহায্য করে, সেই সাথে কোডের ভেতর একটি ডাইনামিক স্ট্রাকচার তৈরি করা যায়। Groovy তে দুটি জনপ্রিয় Builder হল MarkupBuilder এবং NodeBuilder।
MarkupBuilder Groovy তে XML বা HTML মার্কআপ ডকুমেন্ট তৈরি করতে ব্যবহৃত হয়। এটি একটি স্ট্রিম-ভিত্তিক অ্যাপ্রোচ ব্যবহার করে যেখানে আপনি XML/HTML ট্যাগ এবং কনটেন্ট তৈরি করতে পারেন। MarkupBuilder স্বয়ংক্রিয়ভাবে XML বা HTML ফাইল তৈরি করে এবং সঠিকভাবে ট্যাগ এবং ডেটা সমন্বয় করে।
import groovy.xml.MarkupBuilder
def writer = new StringWriter()
def builder = new MarkupBuilder(writer)
builder.html {
head {
title("Groovy MarkupBuilder Example")
}
body {
h1("Welcome to Groovy")
p("This is a simple example of using MarkupBuilder to create XML or HTML.")
ul {
li("Item 1")
li("Item 2")
li("Item 3")
}
}
}
println writer.toString()
<html>
<head>
<title>Groovy MarkupBuilder Example</title>
</head>
<body>
<h1>Welcome to Groovy</h1>
<p>This is a simple example of using MarkupBuilder to create XML or HTML.</p>
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
</body>
</html>
বৈশিষ্ট্য:
NodeBuilder XML ডকুমেন্ট তৈরি করতে ব্যবহৃত হয়, তবে এটি একটি ডাটা-ভিত্তিক অ্যাপ্রোচ গ্রহণ করে যেখানে আপনি নোডগুলির কাঠামো এবং সম্পর্ক নির্ধারণ করতে পারেন। এটি একটি ডাটাবেসের মতো XML স্ট্রাকচার তৈরি করতে পারে, যেখানে আপনি প্রতিটি নোডের ভ্যালু এবং তার সন্তান নোড নির্ধারণ করতে পারেন।
import groovy.xml.NodeBuilder
def builder = new NodeBuilder()
def person = builder.person {
name("John Doe")
age(30)
address {
street("1234 Elm St")
city("Springfield")
state("IL")
}
}
println groovy.xml.XmlUtil.serialize(person)
<?xml version="1.0" encoding="UTF-8"?>
<person>
<name>John Doe</name>
<age>30</age>
<address>
<street>1234 Elm St</street>
<city>Springfield</city>
<state>IL</state>
</address>
</person>
বৈশিষ্ট্য:
বৈশিষ্ট্য | MarkupBuilder | NodeBuilder |
---|---|---|
ব্যবহার | HTML এবং XML মার্কআপ ডকুমেন্ট তৈরি করার জন্য ব্যবহৃত | XML ডকুমেন্ট তৈরি এবং নোড স্ট্রাকচার গঠন করতে ব্যবহৃত |
স্ট্রাকচার | ট্যাগ এবং তাদের কন্টেন্ট তৈরি করে | নোড এবং তাদের সন্তান নোড তৈরি করে |
ফোকাস | স্ট্রিং আউটপুটকে HTML/XML ট্যাগ হিসেবে তৈরি করা | XML ডকুমেন্টের নোড কাঠামো তৈরি করা |
এলিমেন্ট ম্যানেজমেন্ট | স্বয়ংক্রিয়ভাবে ট্যাগ ক্লোজিং এবং নেস্টিং | নোডগুলির মধ্যে সম্পর্ক এবং কন্টেন্ট ম্যানেজমেন্ট |
JSONBuilder
এবং StreamingMarkupBuilder
Groovy তে JSONBuilder
এবং StreamingMarkupBuilder
দুটি শক্তিশালী ক্লাস যা JSON এবং XML ডেটা নির্মাণের জন্য ব্যবহৃত হয়। এই দুটি ক্লাস Groovy তে ডেটা নির্মাণ এবং ম্যানিপুলেশনকে সহজ, পরিষ্কার এবং দ্রুত করে তোলে।
JSONBuilder
JSONBuilder
Groovy তে JSON ডেটা তৈরি করতে ব্যবহৃত একটি ক্লাস। এটি JSON ডেটা নির্মাণের জন্য একটি সহজ এবং শক্তিশালী টুল প্রদান করে, যা আপনাকে JSON অবজেক্টগুলো খুব দ্রুত এবং কম কোডে তৈরি করতে সাহায্য করে।
JSONBuilder
এর বৈশিষ্ট্য:JSONBuilder
Groovy তে JSON ডেটা স্ট্রাকচার তৈরির জন্য একটি কমপ্যাক্ট এবং পরিষ্কার উপায়।import groovy.json.JsonBuilder
// JSONBuilder দিয়ে JSON অবজেক্ট তৈরি
def builder = new JsonBuilder()
// JSON স্ট্রাকচার
builder.person {
name "John"
age 30
city "New York"
}
println builder.toString() // JSON আউটপুট
আউটপুট:
{
"person": {
"name": "John",
"age": 30,
"city": "New York"
}
}
এখানে:
JsonBuilder
এর মাধ্যমে JSON অবজেক্ট তৈরি করা হয়েছে, যেখানে person
নামক একটি অবজেক্টের মধ্যে name
, age
, এবং city
প্রপার্টি রয়েছে।builder.toString()
কল করে JSON স্ট্রিং আউটপুট হিসাবে প্রিন্ট করা হয়েছে।def builder = new JsonBuilder()
builder.books {
book {
title "Groovy in Action"
author "Dierk Koenig"
year 2015
}
book {
title "Learning Groovy"
author "Adam L. Davis"
year 2014
}
}
println builder.toString()
আউটপুট:
{
"books": {
"book": [
{
"title": "Groovy in Action",
"author": "Dierk Koenig",
"year": 2015
},
{
"title": "Learning Groovy",
"author": "Adam L. Davis",
"year": 2014
}
]
}
}
StreamingMarkupBuilder
StreamingMarkupBuilder
Groovy তে XML ডেটা তৈরি করার জন্য ব্যবহৃত একটি শক্তিশালী ক্লাস। এটি XML ডেটার স্ট্রাকচার খুবই দ্রুত এবং কম মেমোরি ব্যবহারের মাধ্যমে তৈরি করতে সাহায্য করে। StreamingMarkupBuilder একটি ইভেন্ট-ভিত্তিক (event-driven) XML বিল্ডার, যা পারফরম্যান্স এবং কম মেমোরি ব্যবহার করে।
StreamingMarkupBuilder
এর বৈশিষ্ট্য:StreamingMarkupBuilder
XML ডেটার স্ট্রাকচার কমপ্যাক্টভাবে এবং দ্রুত তৈরি করে।import groovy.xml.StreamingMarkupBuilder
// StreamingMarkupBuilder দিয়ে XML নির্মাণ
def builder = new StreamingMarkupBuilder()
// XML স্ট্রাকচার
def xml = builder.bind {
person {
name "John"
age 30
city "New York"
}
}
println xml.toString() // XML আউটপুট
আউটপুট:
<person>
<name>John</name>
<age>30</age>
<city>New York</city>
</person>
এখানে:
StreamingMarkupBuilder
ব্যবহার করে একটি XML ডেটা তৈরি করা হয়েছে, যেখানে person
নামক একটি XML এলিমেন্টের মধ্যে name
, age
, এবং city
উপাদান রয়েছে।.toString()
ব্যবহার করে XML আউটপুট প্রিন্ট করা হয়েছে।StreamingMarkupBuilder
এর অন্যান্য সুবিধা:def builder = new StreamingMarkupBuilder()
def xml = builder.bind {
books {
book {
title "Groovy in Action"
author "Dierk Koenig"
year 2015
}
book {
title "Learning Groovy"
author "Adam L. Davis"
year 2014
}
}
}
println xml.toString()
আউটপুট:
<books>
<book>
<title>Groovy in Action</title>
<author>Dierk Koenig</author>
<year>2015</year>
</book>
<book>
<title>Learning Groovy</title>
<author>Adam L. Davis</author>
<year>2014</year>
</book>
</books>
JSONBuilder
Groovy তে JSON ডেটা তৈরি করার জন্য একটি সহজ এবং কার্যকরী টুল। এটি JSON স্ট্রাকচার নির্মাণে সাহায্য করে এবং এটি ডাইনামিকভাবে JSON অবজেক্ট তৈরি করতে সক্ষম।StreamingMarkupBuilder
Groovy তে XML ডেটা তৈরি করার জন্য ব্যবহৃত হয় এবং এটি দ্রুত XML নির্মাণ করতে সাহায্য করে, যেখানে কম মেমরি ব্যবহার করা হয় এবং স্ট্রিমিং ভিত্তিক একটি পদ্ধতি ব্যবহার করা হয়।JSONBuilder
এবং XML এর জন্য StreamingMarkupBuilder
বেশি ব্যবহৃত হয়।Groovy তে JSONBuilder
এবং StreamingMarkupBuilder
ব্যবহার করে আপনি দ্রুত এবং কার্যকরীভাবে JSON এবং XML ডেটা তৈরি করতে পারেন, যা কোডিংকে আরও সহজ ও দ্রুত করে তোলে।
Builders Groovy তে একটি শক্তিশালী কনসেপ্ট, যা কাস্টম ডাটা স্ট্রাকচার তৈরি এবং কনফিগারেশন অপারেশন সহজ করে তোলে। Groovy তে Custom Builders তৈরি করে আপনি ডাইনামিকভাবে XML, JSON, HTML বা অন্যান্য ফর্ম্যাটের ডাটা গঠন করতে পারেন, যা কোডের পুনঃব্যবহারযোগ্যতা এবং কার্যকারিতা বৃদ্ধি করে।
Groovy তে Builder একটি বিশেষ ধরণের ক্লাস যা একটি নির্দিষ্ট ডাটা গঠন বা কনফিগারেশন তৈরি করতে সহায়তা করে। আপনি Custom Builders তৈরি করে কাস্টম কনফিগারেশন বা ডাটা গঠন সহজেই তৈরি করতে পারেন। Groovy তে Builder Pattern একটি ডেভেলপমেন্ট প্যাটার্ন যা একটি জটিল অবজেক্টের গঠন ধীরে ধীরে করে, সাধারণত স্টেপ বাই স্টেপ, ব্যবহারকারীকে জটিলতা থেকে মুক্ত রাখে।
এখানে Custom Builders তৈরি এবং ব্যবহার করার একটি বিস্তারিত আলোচনা করা হলো।
Groovy তে Builder
ক্লাস সাধারণত groovy.util.BuilderSupport
থেকে ইনহেরিট করা হয়। এটি কোডে যেকোনো ধরনের গঠন তৈরি করার জন্য ব্যবহার করা যায়, যেমন XML, HTML, JSON, ইত্যাদি। Groovy তে এই Builder ব্যবহার করা খুবই সহজ এবং স্বাভাবিক।
ধরা যাক, আমরা একটি কাস্টম Person
অবজেক্ট তৈরি করতে চাই, যেখানে name
, age
, এবং address
থাকবে।
class PersonBuilder extends BuilderSupport {
private String name
private int age
private String address
protected void setParent(Object parent, Object child) {
// Handle parent-child relationship if needed (not used here)
}
protected Object createNode(Object name) {
// Create a new node for name, you can use this method for handling nested structures
return null
}
protected Object createNode(Object name, Object value) {
// Capture the name-value pairs
if (name == 'name') {
this.name = value
} else if (name == 'age') {
this.age = value
} else if (name == 'address') {
this.address = value
}
}
def build() {
return new Person(name: name, age: age, address: address)
}
}
class Person {
String name
int age
String address
String toString() {
return "Person(name: $name, age: $age, address: $address)"
}
}
def builder = new PersonBuilder()
builder.name("John Doe")
builder.age(30)
builder.address("1234 Elm Street")
def person = builder.build()
println person // Output: Person(name: John Doe, age: 30, address: 1234 Elm Street)
এখানে, PersonBuilder
একটি কাস্টম Builder ক্লাস, যা name, age, এবং address প্রপার্টি গ্রহণ করে এবং build()
মেথড ব্যবহার করে একটি Person
অবজেক্ট তৈরি করে।
ধরা যাক, আমাদের একটি Employee এবং তার Address থাকতে হবে। এই ক্ষেত্রে, আমরা nested builder তৈরি করতে পারি, যেখানে একটি Person
এর মধ্যে অন্য একটি Address
থাকবে।
class Address {
String street
String city
String state
String zip
String toString() {
return "$street, $city, $state, $zip"
}
}
class EmployeeBuilder extends BuilderSupport {
private String name
private int age
private Address address
protected void setParent(Object parent, Object child) {
// Manage child-parent relationships
}
protected Object createNode(Object name) {
// Create a new node for name (used in nested structures)
return null
}
protected Object createNode(Object name, Object value) {
// Capture name-value pairs
if (name == 'name') {
this.name = value
} else if (name == 'age') {
this.age = value
} else if (name == 'address') {
this.address = value
}
}
def build() {
return new Employee(name: name, age: age, address: address)
}
}
class Employee {
String name
int age
Address address
String toString() {
return "Employee(name: $name, age: $age, address: $address)"
}
}
def builder = new EmployeeBuilder()
// Setting up nested Address node
builder.name("Alice")
builder.age(28)
builder.address {
street "456 Oak Ave"
city "Los Angeles"
state "CA"
zip "90001"
}
def employee = builder.build()
println employee // Output: Employee(name: Alice, age: 28, address: 456 Oak Ave, Los Angeles, CA, 90001)
এখানে, EmployeeBuilder
একটি nested structure তৈরি করেছে, যেখানে address একটি নেস্টেড এলিমেন্ট হিসেবে address
ব্লক-এর মধ্যে দেওয়া হয়েছে।
Groovy তে MarkupBuilder ব্যবহৃত হয় যখন আপনি XML বা HTML মার্কআপ তৈরি করতে চান। এটি একটি বিল্ট-ইন ক্লাস যা Groovy এর বিল্ট-ইন Builder প্রোগ্রামিং কৌশল ব্যবহার করে। Groovy এর MarkupBuilder ট্যাগ ভিত্তিক ডকুমেন্ট বা ডাটা তৈরি করার জন্য খুবই কার্যকর।
import groovy.xml.MarkupBuilder
def writer = new StringWriter()
def xml = new MarkupBuilder(writer)
xml.people {
person(id: '1') {
name 'John Doe'
age 30
}
person(id: '2') {
name 'Jane Smith'
age 25
}
}
println writer.toString()
এখানে, MarkupBuilder
ব্যবহার করে XML ডকুমেন্ট তৈরি করা হয়েছে। আউটপুট হবে:
<people>
<person id="1">
<name>John Doe</name>
<age>30</age>
</person>
<person id="2">
<name>Jane Smith</name>
<age>25</age>
</person>
</people>
import groovy.xml.MarkupBuilder
def writer = new StringWriter()
def html = new MarkupBuilder(writer)
html.html {
head {
title 'Groovy Markup'
}
body {
h1 'Welcome to Groovy'
p 'This is a simple HTML page generated using MarkupBuilder.'
}
}
println writer.toString()
এখানে, MarkupBuilder
ব্যবহার করে HTML তৈরি করা হয়েছে। আউটপুট হবে:
<html>
<head>
<title>Groovy Markup</title>
</head>
<body>
<h1>Welcome to Groovy</h1>
<p>This is a simple HTML page generated using MarkupBuilder.</p>
</body>
</html>
Groovy তে Custom Builders তৈরি করার মাধ্যমে আপনি যে কোনও কাস্টম ডাটা গঠন তৈরি করতে পারেন, যেমন JSON, YAML, HTML, XML, ইত্যাদি। Groovy এর Builder Pattern এবং MarkupBuilder খুবই শক্তিশালী এবং নমনীয়, যা ডেটা গঠন এবং কনফিগারেশন তৈরি করার কাজকে অনেক সহজ করে তোলে।
Groovy তে Custom Builders কোডের পুনঃব্যবহারযোগ্যতা এবং পাঠযোগ্যতা বৃদ্ধি করে, বিশেষত জটিল ডাটা স্ট্রাকচার বা কনফিগারেশন তৈরি করার ক্ষেত্রে।
common.read_more